Содержание.   

ГРАФИКА

 

В Visual Basic есть 3 основных способа использовать графику. Рассмотрим по очереди все 3 способа.

 1 способ - загрузка в Visual Basic готовых изображений.

Придать объекту картинку можно, установив его свойство Picture:

      в режиме проектирования - вручную;

      в режиме работы - использовав функцию LoadPicture.

Например:

Form1 .Picture = LoadPicture("C:\user\1.bmp")

Здесь в скобках в кавычках пишем адрес файла,с картинкой на диске.

Если у вас в проекте несколько объектов, имеющих свойство Picture, то картинку можно мгновенно "скопировать" с одного объекта на дру­гой так:

lmage4.Picture = Form1 .Picture

Если вы хотите удалить картинку с объекта:

      в режиме проектирования вы должны буквально стереть значение свойства Picture из окна свойств;

      в режиме работы вы должны написать оператор такого вида:

Form1.Picture = LoadPicture(" ")

Типы графических файлов

Visual Basic 6.0 поддерживает (воспринимает и работает с ними) графические файлы следующих типов;

 

Расширения файлов

Краткое описание

.BMP,   .DIB

Фотографии и любые другие растровые изображения

.ICO

Значки (пиктограммы, иконки) - очень маленькие

.CUR

Значки курсоров -очень маленькие

.WMF,   .EMF

Метафайлы Windows - векторные изображения

.GIF

Растровые изображения, применяются в Интернете

.JPG,   .JPEG

Растровые изображения (часто пониженного качества, зато эконом­ные), применяются в Интернете

Регулировка размеров изображений: Рассмотрим, как размещаются и умещаются ли картинки в объектах нашего проекта.

Элемент управления PictureBox. Он специально предназначен для размещения картинок. У него есть, например, свойство AutoSize,

которое, если установить его в True, заставляет PictureBox в режиме работы подстраивать свои размеры под размеры картинки.

Элемент управления Image.

Он тоже специально предназначен для размещения картинок. Про­верьте, установлено ли его свойство Strech в False,

 и убедитесь, что по отношению ко всем видам графики объект Image в режиме работы под­страивает свои размеры под размеры картинки.

В чем же тогда его от­личие? Вот в чем. Установите свойство Strech в True, это заставит уже картинку в режиме работы подстраивать

 свои размеры под размеры Image, а не наоборот. Выходит, что свойство Strech - переключатель того, что подо что "прогнется" - Image

 под картинку или картинка под Image.      

А теперь самостоятельно испытайте кнопку CommandButton. Но перед испытанием обязательно придайте ее свойству Style

 значение Graphical, иначе никаких картинок на кнопке не будет видно. Кроме свойства Picture, у кнопки есть ещё,

 например, такое свойство - DownPicture. Оно определяет другую картинку, а именно ту, которую мы видим, нажав кнопку

 и не отпуская ее.

2 способ. Объекты LINE и SHAPE.

Возьмем в Toolbox объект Shape (фигура) и проведем наискосок мышкой по форме. На форме разместится прямоугольник. Он может
превратиться в квадрат, овал (эллипс), круг, может закруглить углы,
все это в зависимости от значения его свойства Shape (да-да, одинако­
вые названия у объекта и его свойства). Поэкспериментируйте со сле­
дующими свойствами фигуры:      
    

 

Свойство

Смысл

BorderWidth

Толщина линии

BorderColor

Цвет линии

BorderStyle

Стиль линии (сплошная, штриховая и т. п.). Предварительно сделайте толщину равной единице


 

Сейчас пространство внутри фигуры прозрачное.  Предположим, вы хотите, чтобы пространство внутри фигуры было

не прозрачным, а залито краской или заполнено узором. Прозрачностью  управляет свойство BackStyle, а цветом -

свойство BackColor.

Взаимное перекрытие объектов. Метод ZOrder.

Мы можем перемещать объекты в пределах своего слоя ближе или дальше от глаз:

      В режиме проектирования - выделить интересующий нас объект ->Format->Order-> далее нужно выбрать

 одну из двух команд: Bring to Front (перенести на передний план) или Send to Back (отослать на задний план).

      В режиме работы - использовать метод ZOrder. Так, чтобы перене­сти на передний план текстовое поле, мы пишем оператор

Textl .ZOrder (0)

а чтобы отослать его на задний план -Textl .ZOrder (1)

Цвет в Visual Basic

Как до сих пор мы придавали цвет какому-нибудь элементу Visual Basic?

      В режиме проектирования мы устанавливали соответствующее свойство в окне свойств. Для этого в закладке Palette выбирали один из нескольких десятков цветов.

      В режиме работы пользовались операторами типа Forml.BackColor= vbRed. Имеется всего 8 цветов, представленных этим способом:

vbBlack

. Черный

vbRed

Красный

vbGreen

Зеленый

vbYellow

Желтый

vbBlue

Синий

vbMagenta

Фиолетовый (неточный перевод)

vbCyari

Голубой (неточный перевод)

vbWhite

Белый

Но в Visual Basic существует 16 млн. цветов с лишним (точнее, 16777216)! Мы должны научиться ими управлять. Есть несколько способов.

Так, цвет можно указывать просто числом от 0 до 16777215. Например,

Form1.BackColor= 12456743

Также любую краску можно получить, смешав, в определенной пропорции красную (Red), зеленую (Green) и синюю (Blue) краски.

В Visual Basic каждой краски в смесь можно положить от 0 до 255 единиц. Смешивает краски спе­циальная функция RGB

 (название - по первым буквам цветов). Пусть мы хотим покрасить форму краской, в которую мы положили 100 единиц красной,

200 единиц зеленой и 50 единиц синей краски. Для этого пишем такой оператор:

Form1.BackColor = RGB(100, 200, 50)

Чем меньше каждой краски мы положим, тем темнее будет цвет, чем больше - тем светлее.

3 способ - рисуем при помощи графических методов

Методами для рисования различных геометрических фигур обла­дают 2 объекта: форма и PictureBox.

Пример:

Напишем программу, которая рисует на форме точку, прямоугольник, окружность и отрезок прямой.

Private Sub Command1_Click()

     PSet (1000, 2000)              ' точка

Line (2000,1000)-(5000, 3000)        'отрезок прямой

Line (3000, 3000)-(1000,4000),, В   'прямоугольник

Circle (4000, 2000), 1000                'окружность
End Sub

Пояснения. Числа на картинке обозначают горизонтальную и вертикальную координаты на форме (в твипах).

Вы видите, что методы записаны без указания объекта, которому они принадлежат. В этом случае считается, что по умолчанию они принадлежат форме. Если бы вы записали Picture1.Line, то рисование происходило бы на поверхности PictureBox.

Точка рисуется методом PSet. Два числа в скобках - координаты точки на форме, первое число - горизонтальная координата, второе число - вертикальная.

Будем называть величины, указанные в методе - параметрами метода.

Отрезок прямой рисуется методом Line. Мы знаем, что отрезок прямой можно построить, если известно положение двух его крайних
точек. Они-то и задаются в обращении к методу. Первая пара параметров — координаты одной точки (любой из двух), вторая пара — другой.
                       .

Если дана пара точек, то между ними можно провести не только отрезок прямой, но и прямоугольник. Для этого достаточно в методе Line указать букву В после двух запятых.

Окружность можно построить, если известно положение центра и радиус. Окружность рисуется методом

 Circle, первые 2 параметра которого - координаты центра, 3-й - радиус.

Фигуры, изображенные методами вашей программы, нарисованы тонкими черными сплошными линиями

 без заливки внутренних областей. Есть 3 способа управлять толщиной, цветом и другими атрибутами фигур.

Для этого , которые вы мо­жете применять поодиночке или вперемешку:

1.          В режиме проектирования настроить соответствующие свойства объекта. Эти свойства воздействуют сразу на все методы.

2.    В режиме работы в нужные моменты изменять эти свойства (этот способ бьет предыдущий, то есть в случае конфликта пересиливает его настройки).

3.          В самом методе можно задавать многие атрибуты рисуемой фигу­ры (этот способ бьет остальные).

 

Свойства объектов, влияющие на графические методы

 

 

Свойство

Смысл

DrawWidth

Толщина линии

ForeColor

Цвет линии

DrawStyle

Стиль линии (сплошная, штриховая и т. п.). Предварительно сделайте толщину равной единице

FillStyle

Стиль (узор) заливки и будет ли заливка

FttiColor

Цвет заливки

AutoRedraw

Определяет, будут ли автоматически восстанавливаться графика и напе­чатанный текст, случайно стертые из-за того, что объект скрылся из виду

DrawMode

Способ наложения краски. По умолчанию значение равно 13 (Сору Реп), когда краска плотно накладывается и предыдущая картинка через нее не просвечивает. При других значениях новая краска меняет свой цвет или, сложно взаимодействует со старой и иногда получается любопытный и полезный результат

Почти всегда там, где допустимы числа, допустимы и выражения.

Например: PSet (2*х+100, у-1),    RGB(21+a, 10, 30)+ 10

 

Если задать их в цикле, то точка нарисует линию (например параболу).

Метод CIs просто стирает все нарисованное и напечатанное. (Создать эффект движения.)

Как заставить Visual Basic короткой программой рисовать множество элементов, сплетая их в красивые узоры?

 Ответ: применять циклы, используя в обращениях к графическим методам вместо чисел переменные величины и арифметические выражения.

Пример:

. Нарисовать горизонтальный ряд окружностей радиусом 100 на расстоянии 1000 от верхнего края экрана и с

такими горизонтальными координатами: 500, 800, 1100, 1400, ..., 2900.

 

  Dim х As Long

Private Sub Command3_Click()

    x = 500

        Do Until x > 2900

             Circle (x, 1000), 100

              x = x + 300

        Loop

End Sub

 

 

Пример:

Написать программу, которая создает эффект мыльных пузырей.

Dim t As Byte
Dim j As Long

Private Sub Command1_Click()
Randomize
For t = 1 To 50
For j = 1 To 10000000: Next              
' пустой цикл для замедления появления пузырей
Circle (Rnd * 10000, Rnd * 10000), Rnd * 1000, RGB(Rnd * 1000, Rnd * 1000, Rnd * 1000), b  
' центр, радиус и цвет задаем случайным образом
Next t
End Sub

Если вставить в программу функцию cls, то пузыри будут появляться и исчезать.

Задать вопрос.

 

 ТЕСТ   Практическое задание

 

 

 

на главную лицея
Hosted by uCoz